1. Field of the Invention
The invention relates to a method and an apparatus for correcting digital information transmitted by an information source to an information sink.
2. Description of the Background Art
Information sources and information sinks may be located on a single computer or on multiple networked computers or other microprocessor-controlled systems (for example, control units from the automotive industry). If the information sources and information sinks are located on a single computer system, the information source may include a first computer program or a first computer program section, and the information sink may include a second computer program or a second computer program section.
If the information source and information sink are not located on a single computer system, but rather on multiple computers or microprocessor-controlled systems, the invention presupposes that these computers or systems are networked with one another.
A networked system, for the purpose of the invention, includes at least two network components, each of which has the capability to transmit digital information and/or to receive digital information, or to be more precise, the information source should at least be able to transmit information and the information source should at least be able to receive information.
A wide variety of methods and devices for information transmission within a networked system are known from the prior art. Bus systems constitute a subset of networked systems, and these are frequently described by standards.
Examples of bus systems that are also used in the automotive industry or in industrial automation are the CAN (Controller Area Network) per ISO 11898, the LIN (Local Interconnect Network), and FlexRay. Details on these may be found in the book, “Bussysteme in der Fahrzeugtechnik” by W. Zimmermann and R. Schmidgall, 1st edition April 2006, Friedr. Vieweg & Sohn Verlag, GWV Fachverlage GmbH, Wiesbaden, Germany.
The components connected to the bus system are often referred to as bus users or as nodes. These bus users may be, for example, control units, on-board computers, intelligent sensors and intelligent actuators, etc. The structure, functions, and characteristics of bus topologies, bus protocols, and bus interfaces are known to the individual skilled in the art, and hence are not part of this description.
In like manner, it is known to record the information that is exchanged between the network components (in particular the bus users) in order to use the recordings for such purposes as, e.g., analysis and/or diagnostics and/or testing and/or simulation.
The information exchanged over the network often contains values for variables or for signals (variable values or signal values) that represent defined states of the components of the networked system.
Since it is not important for the description of the invention whether a variable or a signal is transmitted and since, moreover, a signal can be represented by a variable, in the following explanation the term “variable” should be understood to include both its literal meaning and also as a synonym for “signal.” The same applies to the terms “variable value” and “signal value” in the text below. For correct transmission of the variable values, it is of course essential for the receiving side to be able to unambiguously identify what variable was or will be transmitted by the transmitting side. For this purpose, it is customary to assign a name to the variables. Accordingly, the information transmitted over the network contains a variable name and frequently also a variable value associated with the variable name. If only the variable name is transmitted via the network without a variable value, then depending on a predefined convention, which is to say on whether “positive” or “negative” logic is to be applied, this can mean, for example, that the variable should be interpreted by the information sink as being in the “ON” state (positive logic) or in the “OFF” state (negative logic).
Normally, the variable name that is assigned by the information source (for example, a first control unit) is known to the information sink (for example, a second control unit). For example, a variable with the name “Signal1_Out” can be transmitted from the information source to the information sink over the network. In the typical case, the information sink will temporarily store the variable “Signal1_Out” and transmit it to a software component that uses this variable.
The variable names in a networked system may be bound by naming conventions, so that, for example, a variable originating from an information source (for example, a first bus user) has a name ending with “Out,” and a variable read in from the network by an information sink (for example, a second bus user) must have a name ending with “In” prior to further use. Thus, in this example the information sink would first have to rename the variable after reading it in. As long as this procedure is used by all information sinks (which is to say, for example, all bus users that read information from the bus), corresponding renaming of the variables can be implemented relatively easily by programming means.
However, programming errors, inattention in the assignment of names, or inconsistencies in the allocation of variable lists or associated alias lists can cause the variable names at the information source and information sink to differ from one another, and not in a predictable manner (for example with the identifier “Out” instead of “In”) as described in the previous paragraph, but rather in an arbitrary, unpredictable manner. The incorrect characters can occur in the variable names at any point in the variable's name string, with it being possible for the affected variable name to have too many or too few characters, and possibly incorrect characters in any given case as well.
If an incorrect variable name is transmitted via bus during communication between network components, which is to say between bus users, for example, this necessarily results in a transmission error. Troubleshooting (debugging) can be very tedious and time-consuming, for example in networked systems with, e.g., several hundred or more variables.
An equally serious problem will generally arise if variable values are exchanged between an information source and an information sink on a single computer or on a single microprocessor-controlled device and the corresponding variable names do not match. This could be the case, for example, if the information source is comprised primarily of a first computer program or a first computer program section and the information sink is comprised primarily of a second computer program or a second computer program section, and the first variable provided by the information source does not have a name that is “expected” by the information sink.